//
//  CustomCollectionViewCell.swift
//  Swift30Days
//
//  Created by licheng ke on 2017/3/14.
//  Copyright © 2017年 licheng ke. All rights reserved.
//

import UIKit

struct Travel {
    let image : String
    let content : String
    
    static func fakeDatas() -> [Travel] {
        let strings : [String] = [
            "Redux 是 JavaScript 状态容器，提供可预测化的状态管理。",
            "可以让你构建一致化的应用，运行于不同的环境（客户端、服务器、原生应用），并且易于测试。不仅于此，它还提供 超爽的开发体验，比如有一个时间旅行调试器可以编辑后实时预览",
            "It's cool that you are inventing a better Flux by not doing Flux at all.",
            "Redux 的开发最早开始于我在准备 React Europe 演讲热加载与时间旅行的时候，当初的目标是创建一个状态管理库，来提供最简化 API，但同时做到行为的完全可预测，因此才得以实现日志打印，热加载，时间旅行，同构应用，录制和重放，而不需要任何开发参与。",
            "用这个架构开发计数器有点杀鸡用牛刀，但它的美在于做复杂应用和庞大系统时优秀的扩展能力。由于它可以用 action 追溯应用的每一次修改，因此才有强大的开发工具。如录制用户会话并回放所有 action 来重现它。"
        ]
        
        var travels : [Travel] = []
        for (index , obj) in strings.enumerated() {
           travels.append(Travel(image: "\(index + 1)", content: obj))
        }
        return travels
    }
    
}

class CustomCollectionViewCell: UICollectionViewCell {
    @IBOutlet weak var backBtn: UIButton!

    @IBOutlet weak var myContentLabel: UILabel!
    @IBOutlet weak var myImageView: UIImageView!
    var travel : Travel?
    var callBack : ((CustomCollectionViewCell)->())?
    
    override func awakeFromNib() {
        super.awakeFromNib()
        self.backgroundColor = UIColor.white
    }
    
    func pressCellConfigCell(){
        backBtn.isHidden = true
        myContentLabel.numberOfLines = 2
    }
    
    func sketchCellConfig(){
        backBtn.isHidden = false
        myContentLabel.numberOfLines = 0
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        if let travel = self.travel {
            myContentLabel.text = travel.content
            myImageView.image = UIImage(named: travel.image)
        }
    }

    @IBAction func goBackAction(_ sender: Any) {
        if self.callBack != nil {
            callBack!(self)
        }
    }
    
    
    
}
